End users of network systems, for example, the Internet, are accustomed to addressing resources and devices with names (e.g., www.arbometworks.com). Names associated with these resources and devices are mapped to network addresses (e.g., IP addresses) which generally have a numeric format. For example, IP addresses have a numeric format of four octets separated by decimals or 8 half-words (16-bit units) separated by colons.
The Domain Name System (DNS) provides a method for mapping and resolving names into IP addresses so that an end user, addressing a device or resource by name, can connect to the appropriate device or resource. DNS is most commonly used in the Internet for associating names to addresses. DNS is well-known and is more thoroughly described in the book entitled DNS and Bind in a Nutshell, by P. Albitz and C. Liu, O'Reilly and Associates, Sebastopol, Calif., 1992, the contents of which are incorporated herein by reference.
The relationship between a name and its corresponding address is often referred to as a mapping and is related in the DNS system by a database entry referred to as a resource record. In particular, resource records that map addresses to names are referred to as address records. A collection of address records is held in DNS databases on systems referred to as nameservers. Nameservers “serve” name to address mappings to clients (e.g., client systems, other nameservers, etc.) in response to requests. Nameservers also serve other information, such as reserve lookup information, information regarding mail routing, etc.
The DNS system is a distributed system having a number of types of nameservers that perform various functions. For example, primary nameservers store authoritative mappings for their domains and provide the ability to make administrative changes to these mappings. Secondary nameservers have copies of the authoritative data from the primary nameservers and provide redundant resolving services to clients for the purposes of performance and failure considerations. Caching servers hold DNS records for mappings they have recently resolved. Primary and secondary nameservers are considered caching nameservers for mapping information of addresses in domains for which they are not authoritative.
There also exist “caching only” nameservers that are non-authoritative for any domain, but are used to cache domain information for performance considerations. According to recent statistics, over 80% of the nameservers in the Internet are caching-only nameservers.
When an end user wants to reach a resource or device using a name, a program executing on the client referred to as a resolver queries his network's nameserver for the address that corresponds to the name. The query may be served from an authoritative source (e.g., primary nameserver) or any one of a number of non-authoritative sources (e.g., caching-only nameserver or other server that caches mapping information).